package top.ucat.boots.common.utils;

public class StatusUtils {

    public static void main(String[] args) {
        System.out.println(removeState(15, 4));
    }


    //与：同为1则1
    //是否具有某种状态，states:原有状态，   value:要判断状态
    public static boolean hasState(long states, long value) {
        return (states & value) != 0;
    }

    //或，有1则1
    //添加状态，states:原有的状态， value:要添加的状态
    public static long addState(long states, long value) {
        if (hasState(states, value)) {
            return states;
        }
        return states | value;
    }

    //异或，相同为0，不同为1
    //移除状态，states:原有的状态， value:要移除的状态
    public static long removeState(long states, long value) {
        if (!hasState(states, value)) {
            return states;
        }
        return states ^ value;
    }
}